%---------------------------------------------------------------------------%
%->> Frontmatter
%---------------------------------------------------------------------------%
%-
%-> 生成封面
%-
\maketitle% 生成中文封面
\MAKETITLE% 生成英文封面
%-
%-> 中文摘要
%-
\intobmk\chapter*{前\quad 言}% 显示在书签但不显示在目录
\setcounter{page}{1}% 开始页码
\pagenumbering{Roman}% 页码符号
\begin{itemize}
    \item 本书实际上是一个教程形式的学习笔记；
    \item 本书主要为不熟悉并行编程的同学编写，主要讲解具体的工具使用，不会过多涉及抽象的优化算法。玩过并行编程的同学请直接看超算中心发的两个手册，清华的大佬写的比我好，搞过CUDA写过cu玩过SIMD的一看就能懂；
    \item 本书主要的行文线索是2018年12月左右启动的机器学习算法库在太湖之光系统中的移植和并行优化项目；
    \item 本书是超算中心下发的官方教程《“神威 · 太湖之光”计算机编译系统用户手册 Version 0.9》（本书简称《编译手册》）和《神威 · 太湖之光并行程序设计与优化（第一版）Ver1.2》（本书简称《优化手册》）中重要知识点的实践总结；
    \item 比起Fortran作者更擅长也更常用C语言，C语言也能胜任超算系统中的大部分工作，因此本书所有代码均使用C语言编写，关于编译器也只涉及Sunway的C语言编译器；
    \item 本书不区分“‘神威 · 太湖之光’计算机系统”、“‘神威 · 太湖之光’系统”、“Sunway系统”、“神威系统”和“太湖之光系统”，以及处理器名称“SW26010”、“Sunway26010”和“申威26010”，请读者注意；
    \item 本书将作为每周的俱乐部工作报告持续更新。
\end{itemize}

\section*{学习本教程前需要掌握的知识}
\begin{itemize}
    \item C语言，不仅是C语言的使用，编译器的运行流程要了解。本书所有代码都是C语言，神威编译器也只介绍C语言编译器；
    \item 用命令行操作Linux系统（Sunway的操作系统没有图形界面）；
    \item 看过某些并行计算教程开头的介绍章节（比如CUDA教程），至少知道并行计算是在干嘛。
\end{itemize}

\section*{国家超级计算中心简介}
神威·太湖之光超级计算机是由国家并行计算机工程技术研究中心研制、部署于国家超级计算无锡中心的超级计算机。类似的超级计算中心在国内共有7个，它们分别是：
\begin{itemize}
    \item 天津中心：2009年6月，滨海新区与国防科技大学签署合作协议共建国家超级计算天津中心。天津中心由国家科技部、滨海新区、开发区、国防科技大学共同投资6亿元建设，于2009年底开始投入运营。定位为国家重大科技服务平台、产业技术创新平台、人才聚集培养平台，主要承接国家“863”重大科技专项，是重要的大规模集成电路设计中心和基础软件工程中心及产业化基地；
    \item 深圳中心：国家超级计算深圳中心又称深圳云计算中心，总投资12.3亿元。主机系统由中国科学院计算技术研究所研制、曙光信息产业（北京）有限公司制造，2010年5月经世界超级计算机组织实测确认运算速度达每秒1271万亿次。深圳中心立足深圳、主要面向全国、服务华南、港、澳、台及东南亚地区，承担各种大规模科学计算和工程计算任务，同时以其强大的数据处理和存储能力为社会提供云计算服务；
    \item 长沙中心：国家超级计算长沙中心位于湖南大学校区内，其依托的计算设备是国防科技大学研制的“天河一号”超级计算机。长沙中心总投资7.2亿元，运算能力达每秒300万亿次，由湖南大学负责运营，国防科技大学提供计算设备和技术支持；
    \item 济南中心：国家超级计算济南中心主要依托的计算设备是“神威 · 蓝光”超级计算机，其持续性能可达0.796PFlops。济南中心秉持立足山东、辐射周边、服务全国的工作思路，积极服务于山东省"两区一圈一带"发展战略需求，支持国家重大科技创新和战略性新兴产业，服务地方经济发展。2018年8月，神威E级超算原型机在国家超级计算济南中心完成部署。
    \item 广州中心：国家超级计算广州中心由广东省人民政府、广州市人民政府、国防科技大学、中山大学共同建设，主要依托设备是“天河二号”超级计算机；
    \item 无锡中心：国家超级计算无锡中心是无锡市政府直属事业单位，由清华大学与无锡市政府共同建设，并委托清华大学管理运营。国家超级计算无锡中心依托的“神威 · 太湖之光”计算机系统是我国“十二五”期间“863计划”的重大科研成果，由国家并行计算机工程技术研究中心研制，运算系统全面采用了由国家高性能集成电路设计中心通过自主核心技术研制的国产“申威26010”众核处理器，是我国第一台全部采用国产处理器构建的世界排名第一的超级计算机；
    \item 郑州中心：2019年5月，国家超级计算郑州中心获得科技部批复筹建，成为全国第7家批复建设的国家超级计算中心，也是科技部出台认定管理办法后批复筹建的首家国家超级计算中心。郑州中心拟依托郑州大学建设运营，计划于2020年上半年建设完成，峰值计算能力预期将达到100Pflops。
\end{itemize}

\section*{神威 · 太湖之光简介}
“神威 · 太湖之光”计算机系统(Sunway TaihuLight)采用全机水冷、直流供电、高密度组装，配有精确的资源调度管理算法、丰富的并行编程语言和开发环境。2016年6月20日国际TOP500公布的排名数据中，“神威 · 太湖之光”计算机系统以每秒12.54亿亿次的峰值运算速度和9.3亿亿次的持续运算速度高居榜首。“神威 · 太湖之光”是中国第一台全部采用国内自主研发技术构建的超级计算机。详细的架构描述可见《优化手册》第一章。

\section*{申威26010简介}
“神威 · 太湖之光”计算机系统采用的处理器是申威26010(Sunway 26010)，该处理器由上海高性能集成电路设计中心自主研制，其指令集为自主研发的64位申威指令集，工作频率1.5Ghz。该处理器不同于现有的纯CPU、CPU-MIC、CPU-GPU架构，而是采用了主-从核架构，每个申威26010中有4个处理器，每个处理器包含1个主核（运算控制核心）和64个从核（8x8核心阵列），主从核的关系类似于CPU-GPU架构。详细的架构描述可见《优化手册》1.2节。

\section*{同构计算和异构计算\cite{noauthor__nodate}}
同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式。同构超算只单纯使用一种处理器，例如“神威 · 蓝光”只采用了8704片申威1600。而异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。例如天河2号有16000个计算节点，每个节点由2片Intel的E5 2692和3片Xeon PHI组成，共使用了32000片Intel的E5 2692和48000片Xeon PHI；天河1A使用了14336片Intel Xeon X5670处理器和7168片NVIDIA Tesla M2050高性能计算卡。相同功耗的情况下，异构超算能获得非常高的理论双精浮点性能和更高的性能功耗比，这也使异构处理器其更受超级计算机系统偏爱。

“神威 · 太湖之光”计算机系统所采用的申威26010属于异构众核处理器。不同于“神威 · 蓝光”的同构申威1600处理器和天河2号的CPU-GPU架构，申威26010的异构模式相当于将CPU和GPU集成在一个芯片上，从“神威 · 太湖之光”整体上看，这相当于将GPU分散放置到了CPU的周围，使得单个处理器同时具有CPU核GPU的功能。和CPU-GPU体系相比，这种架构的优势在于减少了计算过程中的数据传输时间，从而提高整体的运算速度。

%\keywords{中国科学院大学，学位论文，\LaTeX{}模板}% 中文关键词
%-
%-> 英文摘要
%-
%\intobmk\chapter*{Preface}% 显示在书签但不显示在目录

%前言 in English.

%\KEYWORDS{University of Chinese Academy of Sciences (UCAS), Thesis, \LaTeX{} Template}% 英文关键词
%---------------------------------------------------------------------------%
